/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ar.com.arkios.kfconsap.rfc;
import ar.com.arkios.kfconsap.excepciones.DataTypeInvalidConversionException;
import ar.com.arkios.kfconsap.excepciones.RFCNotFoundException;
import ar.com.arkios.kfconsap.excepciones.SapGeneralException;
import ar.com.arkios.kfconsap.excepciones.TableNotFoundException;
import ar.com.arkios.kfconsap.tablas.AlmacenDAO;
import ar.com.arkios.kfconsap.tablas.CalibreDAO;
import ar.com.arkios.kfconsap.tablas.EmbalajeDAO;
import ar.com.arkios.kfconsap.tablas.OrdenDAO;
import java.io.IOException;

/**
 *
 * @author Ale
 * @version 1.01
 * Clase DatosCentroReadRFC
 * Remote Call Function Z_RFC_READ_DATOS_CENTROS
 */
public class DatosCentroReadRFC extends GenericRFC {
    
    /**
     * 
     * Atributo myCalibreDAO contiene la tabla I_CALIBRE del Sistema de SAP
     * Atributo myEmbalajeDAO contiene la tabla I_EMBALAJE del Sistema de SAP
     * Atributo myAlmacenDAO contiene la tabla I_ALMACEN del Sistema de SAP
     * Atributo myOrdenDAO contiene la tabla T_ORDENES del Sistema de SAP
     */
    private CalibreDAO myCalibreDAO;
    private EmbalajeDAO myEmbalajeDAO;
    private AlmacenDAO myAlmacenDAO;
    private OrdenDAO myOrdenDAO;    
    
    private static String myRFCFieldParameter = "WERKS";
    private static String myRFCValueParameter = "UEAB";// San Juan New
    //private static String myRFCValueParameter = "SALT";// Salta Old
    //private static String myRFCValueParameter = "SJME";// San Juan Old
    //private static String myRFCValueParameter = "FISA";
    
    
    /**
     * Constructor que llama al constructor base, setea el nombre de la RFC e
     * informa si tiene filtros.
     * @throws java.io.IOException
     */
    
    public DatosCentroReadRFC() throws SapGeneralException{
        super();
        super.setRfcName("Z_RFC_READ_DATOS_CENTROS");
        super.setTieneParametrosRFC(true);
        super.setFieldParam(myRFCFieldParameter);
        super.setValueParam(myRFCValueParameter);
        try {
            super.createFunction();
        } catch (RFCNotFoundException ex) {
            throw new SapGeneralException(ex.getMessage());
        }
    }


    /**
     * Override del metodo loadTables de GenericRFC    
     * 
     */
    @Override
    public void loadTables() throws DataTypeInvalidConversionException, TableNotFoundException {
        this.myAlmacenDAO = new AlmacenDAO(super.getMyFunction());
        this.myEmbalajeDAO = new EmbalajeDAO(super.getMyFunction());
        this.myCalibreDAO = new CalibreDAO(super.getMyFunction());
        this.myOrdenDAO = new OrdenDAO(super.getMyFunction());
    }

    /**
     * 
     * @return AlmacenDAO
     */
    public AlmacenDAO getMyAlmacenDAO() {
        return myAlmacenDAO;
    }

    /**
     * 
     * @return CalibreDAO
     */
    public CalibreDAO getMyCalibreDAO() {
        return myCalibreDAO;
    }

    /**
     * 
     * @return EmbalajeDAO
     */
    public EmbalajeDAO getMyEmbalajeDAO() {
        return myEmbalajeDAO;
    }

    /**
     * 
     * @return OrdenDAO
     */
    public OrdenDAO getMyOrdenDAO() {
        return myOrdenDAO;
    }
    
    
    

}
